﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static List<Student> alist = new List<Student>();
        static void Main(string[] args)
        {
            //第一题：
            //一个考试管理系统，需要录入考生成绩，只能录入数字，否则会报类型转换异常。
            //请编写相关代码，
            //1、捕获FormatException异常，并打印输出“异常已处理；
            //2、捕获OverflowException异常，数值超出double范围的异常，并打印输出“异常已处理；
            //3、捕获一般异常Exception异常。
            //4、最终处理finally
            //录入成绩结束后，请输出，总学生数，总分数，平均分。
            Task1();
        }

        private static void Task1()
        {
            float Score = 0;
            
            for (int i = 0; i < 5; i++)
            {
                 
                try
                {
                    Console.Write("请输入你的名字：");
                    string name = Console.ReadLine();
                    Console.Write("请输入你的成绩：");
                    float S = int.Parse(Console.ReadLine());
                    Score = Score + S;
                    Student a = new Student(name, S);
                    alist.Add(a);
                    Console.WriteLine();

                }
                catch (FormatException)
                {
                    i--;
                    Console.WriteLine("类型转换异常, 已处理,请重新输入这位同学的名字和成绩！");
                    
                }
                catch (OverflowException)
                {
                    i--;
                    Console.WriteLine("超出float范围的异常,已处理,请重新输入这位同学的名字和成绩！");
                }
                catch (Exception)
                {
                    i--;
                    throw;
                }
                finally
                {
                    Console.WriteLine("----------------------------------------------------------");
                }
            }
            Console.WriteLine($"学生总人数：{alist.Count}  学生的总分数：{Score}  学生的平均分：{Score / (alist.Count)}");
        }
    }
}
